首页 > 试题广场 >

翻转链表

[编程题]翻转链表
  • 热度指数:5701 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

对于一个链表 L: L0→L1→…→Ln-1→Ln,
将其翻转成 L0→Ln→L1→Ln-1→L2→Ln-2→…

输入是一串数字,请将其转换成单链表格式之后,再进行操作


输入描述:
一串数字,用逗号分隔


输出描述:
一串数字,用逗号分隔
示例1

输入

1,2,3,4,5

输出

1,5,2,4,3

备注:
数组长度不超过100000
class solution(object):   
    def function(self, a:int, s: list):
        x, y = s[:r], s[r+a:][::-1]
        for i in range(r):
            res.extend([x[i], y[i]])
        if a:
            res.append(s[r])
        return res
    
if __name__ == "__main__" :
    s = input().split(",")
    t = len(s)
    r = t // 2
    res = []
    q = solution() 
    if t%2==1:
        q.function(1, s)
    else:
        q.function(0, s)
    print(",".join(res))
    
发表于 2022-03-09 11:22:14 回复(0)